草庐IT

c++ - Visual Studio 和 Boost::Test

全部标签

c++ - boost 文件系统错误(temp_directory_path 返回 <Bad Ptr>)

我正在尝试使用Boost获取当前的临时文件夹:boost::system::error_codeerror;autotmp_path=boost::filesystem::temp_directory_path(error);if(boost::system::errc::success!=error.value()){std::cout在visualstudio2013调试session期间调查tmp_path的值时,tmp_path的值似乎不正确-VS显示{m_pathname=}.以下代码也失败,出现异常“stringtoolong”,这可能与问题有关:std::stringtm

c++ - Boost::filesystem::is_empty() 为符号链接(symbolic link)返回 false

直到一周前,我一直在我的项目中使用Boost1.46.1。将所有内容升级到Boost1.55.0后,我注意到某些功能无法像以前那样工作。我的软件加载通过SymLinks放置的配置文件。我正在使用Microsoftmklink做这个。我今天发现虽然1.46.1版中的boost::filesystem::is_empty()为我的链接返回false,但它现在返回true在1.55.0中。不幸的是,我无法更改使用该代码的组件。结果是我的配置文件不再加载。有没有办法以Boost能够识别的方式创建链接?如果我可以访问代码:我需要如何更改它才能再次运行?更新:回复评论的更多信息:SymLink有效

windows - 缺少注册表 HKLM\SOFTWARE\Microsoft\VisualStudio\SxS\VS7

在将我的机器单独放置几周后,我回来做一些使用Qt-using-VC10的工作。麻烦的第一个迹象是QtCreator关于“cl”未被识别的错误,这让我发现C:\Windows\System32不知何故已从PATH中删除。无法识别“reg”命令导致vcvarsall.bat无法设置VS100COMNTOOLS,如所述here.上述线程将我引导至this,建议简单地将C:\Windows\System32添加回PATH。然而,我的麻烦还没有结束。一旦C:\ProgramFiles(x86)\MicrosoftVisualStudio10.0\VC\vcvars32.bat(由vcvarsal

c - 为什么微软将类型CHAR定义为char,将宏CONST定义为const?

这个问题在这里已经有了答案:WindowsDataTypes...whysoredundant/undescriptive?(3个答案)关闭8年前。作为C初学者,翻看MSDN'sWindowsDataTypes,我看到有很多定义的类型似乎是多余的。例如使用typedef:CHAR--typedefcharCHAR;FLOAT--typedeffloatFLOAT;也作为对象宏:CONST--#defineCONST常量据我了解,typedef和#define通常用于阐明程序员的意图:#defineBOOLint和/或缩短类型声明(想不出一个好的例子):typedefunsignedch

c - 如何获取文件的 "valid data length"?

有一个函数可以设置“有效数据长度”值:SetFileValidData,但我没有找到获取“有效数据长度”值的方法。如果EOF与VDL不同,我想知道给定的文件,因为在VDL的情况下在VDL之后写入将导致性能损失,如here所述. 最佳答案 我找到了this页面,声称:thereisnomechanismtoquerythevalueoftheVDL所以答案是“你不能”。如果您关心性能,您可以将VDL设置为EOF,但请注意,您可能允许访问磁盘上的旧垃圾-这两个指针之间的部分,如果您不访问该文件则应该为零设置VDL指向EOF。

我可以在特定地址创建一个堆栈的线程吗?

我正在做一些实验,想知道是否可以在我提供的特定地址创建一个线程堆栈,或者至少让线程堆栈只在我可以指定的某个(巨大的)虚拟内存区域中产生.我对此感兴趣的原因是我想在某个时候将整个堆栈复制到远程进程并且需要指针保持完整,并且线程堆栈不会发生冲突。这可能不是最好/最安全的方法,我知道,但这只是一个小小的爱好项目。如果您知道如何在Linux上执行此操作,我也对此很感兴趣。 最佳答案 只是编译评论所说的内容。Forwindows,theanswerisno对于Unix(posix),答案是pthread_attr_setstack.(另见上面

c - 如何禁用字符代码 178 (0xB2) (²) 、179 (0xB3) (³) 和 185 (0xB9) (¹) 作为数字?

使用SWI-Prolog生成数字时使用code_type(X,digit).结果是预期的ASCII字符代码和178(0xB2)²179(0xB3)³185(0xB9)¹例如code_type(X,digit).X=48;X=49;X=50;X=51;X=52;X=53;X=54;X=55;X=56;X=57;X=178;X=179;X=185;false.如何禁用或更改该功能,使0-9以外的字符不是数字?显然我可以编写不同的例程,但我想知道是否没有可以执行此操作的选项或语句。长话短说版本SWI-Prolog(Multi-threaded,32bits,Version7.2.3)SWI-

c++ - Cygwin 安装说明 :Hand installation over to elevated child process

我正在尝试安装Cygwin作为在Windows1064位计算机上安装gcc6.3.0的前身。我正在按照我找到的说明进行操作here.当我使用以下行安装Cygwin包时(上述链接中的第2步):C:\cygwin64>setup-x86_64.exe-q-Pwget-Pgcc-g++-Pmake-Pdiffutils-Plibmpfr-devel-Plibgmp-devel-Plibmpc-devel我在Windows命令窗口中收到以下消息:C:\cygwin64>note:Handinstallationovertoelevatedchildprocess._如上图,光标位于C:\cyg

c# - 如何通过C++或C或C#在Windows中创建指定大小的空文件?

关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭5年前。Improvethisquestion如何在Windows中用C++或C或C#创建一个指定大小的空文件?这个文件不占用磁盘空间,打开文件,没有任何东西。但是文件在文件属性中有字节数。Forexample--

c - 如何模拟按键

我知道AutoHotKey,但我想制作自己的程序,例如让它每10秒按一次F5。我搜索了互联网和StackOverflow但没有找到解决方案有没有办法用C实现?我正在使用并以Windows8.1为目标 最佳答案 您想使用SendInput功能。以下代码每10秒向Windows发送一对按键按下和按键弹起输入事件。#includestaticconstintdelay_ms=10000;voidsendF5(UINTuTimerID,UINTuMsg,DWORD_PTRdwUser,DWORD_PTRdw1,DWORD_PTRdw2){I